const getDefaultState = () => {
  return {
    msgList: [],
    msgnum: 0
  }
}

const state = getDefaultState()

const mutations = {
  ADD_MSG: (state, msg) => {
    state.msgList.unshift(msg)
  },
  DEL_MSG: (state, msg) => {
    const index = state.msgList.findIndex(res => (res.id === msg.id))
    state.msgList.splice(index, 1)
  },
  CLEAR_MSG: (state) => {
    state.msgList = []
  },
  SET_MSGNUM: (state, msgnum) => {
    state.msgnum = Number(msgnum)
  },
  ADD_MSGNUM: (state, msgnum) => {
    state.msgnum = Number(state.msgnum) + Number(msgnum)
  },
  DEL_MSGNUM: (state, msgnum) => {
    state.msgnum = Number(state.msgnum) - Number(msgnum)
  }
}

const actions = {
  addMsg({ commit }, msg) {
    commit('ADD_MSG', msg)
  },
  delMsg({ commit }, msg) {
    commit('DEL_MSG', msg)
  },
  clearMsg({ commit }) {
    commit('CLEAR_MSG')
  },
  setMegnum({ commit }, msgnum) {
    commit('SET_MSGNUM', msgnum)
  },
  addMegnum({ commit }, msgnum) {
    commit('ADD_MSGNUM', msgnum)
  },
  delMMegnum({ commit }, msgnum) {
    commit('DEL_MSGNUM', msgnum)
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

